package ar.uba.fi.tecnicas.fabrica;

import java.util.ArrayList;
import java.util.List;

public class Laboratorio 
{
	private List<TipoProducto> productosADescubrir;
	
	private double capitalInvertido;
	
	public Laboratorio()
	{
		this.productosADescubrir = new ArrayList<TipoProducto>();
		this.capitalInvertido = 0;
	}
	
	public void agregarProductoADescubrir(TipoProducto tipoProducto)
	{
		if(tipoProducto != null)
		{
			this.productosADescubrir.add(tipoProducto);
		}		
	}
	
	public List<TipoProducto> getProductosADescubrir(TipoProducto tipoProducto)
	{
		return this.productosADescubrir;
	}
	
	public void investigar(Fabrica fabrica, double inversion)
	{
		this.capitalInvertido += inversion;

		List<TipoProducto> descubiertos = new ArrayList<TipoProducto>();

		for(TipoProducto tipo : this.productosADescubrir)
		{
			if(tipo.getCapitalInversion() <= this.capitalInvertido)
			{
				descubiertos.add(tipo);				
			}
		}
		
		for(TipoProducto tipo : descubiertos)
		{
			this.productosADescubrir.remove(tipo);
			fabrica.agregarTipoProductoConocido(tipo);
		}		
	}
	
	public double getCapitalInvertido()
	{
		return this.capitalInvertido;
	}
	
	public void setCapitalInvertido(double capitalInvertido)
	{
		this.capitalInvertido = capitalInvertido;
	}
}
